SQL Server创建链接服务器的几种方式 |
您所在的位置:网站首页 › 无法创建链接服务器 7302 › SQL Server创建链接服务器的几种方式 |
当我们需要从别人的数据库服务器上将数据复制到本地时,除了编写程序来实现之外,作为数据库管理员或者普通的数据库用户来说,如果不会编写外挂程序,那怎么办呢?冷静,链接服务器来帮你解决。有了链接服务器,我们不需要写任何的程序,就可以实现将一个数据库的数据复制到另一个数据库。 SQL Server链接服务器不仅可以帮助你链接SQL Server,还可以链接Oracle、Access、MySQL、ODBC数据源。 1. SQL Server链接SQL Server我这里两台SQL的服务器分别为SQL1.abc.com和SQL2.abc.com。 在SQL1上新建链接服务器:
下面是错误的示范:
建立链接服务器完成之后(如下图),那怎么使用呢? 注意:这里的链接服务器名一定要用中括号"[]"括起来,不然又会报错:
添加: Insert openquery(LINKDB_MYSQL, 'select * from test') (Address) values('云南')删除: delete openquery(LINKDB_MYSQL, 'SELECT * FROM test where id=2')或者: delete openquery(LINKDB_MYSQL, 'SELECT * FROM test ')where id=5更新: update openquery(LINKDB_MYSQL, 'SELECT * FROM test') SET Address = '北京' WHERE id = 1如果出现链接好之后,查询提示“Source character set not supported by client”说明数据库驱动版本不够,像上面我使用的是mysql8.0.13,但是我的odbc驱动是5.3,就会出现这个问题,更换odbc驱动为8.0.18之后正常访问。 基本跟链接MySQL差不多,驱动不同而已。 首先需要安装Oracle驱动instant client,点我这个链接直接去Oracle官网找。根据自己的需要下载相关的驱动及工具包。我这里只需要basic(这是必须的)和odbc驱动(这也是必须的,因为需要创建ODBC数据源连接Oracle数据库),因为我是64位的,所以我需要下64位的包,如下图: tnsnames.ora文件内容如下: ORCL_TEST= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 你的Oracle主机名)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 服务名,我这里是默认的orcl) ) )设置系统环境变量: Path C:\Program Files\Oracle\instantclient_11_2 在Path后面追加instantclient路径 TNS_ADMIN C:\Program Files\Oracle\instantclient_11_2\network\admin tnsnames.ora所在路径 NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 设置Oracle字符语言集,此字符集支持中文进入到instantclient_11_2目录,运行刚合并进来的odbc_install.exe安装ODBC驱动。直接双击运行一闪而过,看不到是否安装成功,可以通过cmd运行查看运行结果。 至此,配置全部完成。可以通过ODBC创建数据源连接Oracle数据库了,如果在程序中调用DSN时出现驱动程序与应用程序体系结构不匹配,则说明所安装的版本不正确(若安装的64位则更换32位即可解决)。
Oracle Data Access Components (ODAC) 这种方法与第四种instant client创建odbc驱动链接的方式存在冲突,OLEDB驱动安装之后也会安装instant client的basic组件。所以需要删除之前的Path环境变量中instant client的路径,修改为稍后要创建的新路径。或者将之前的ODBC驱动重新安装到这个instant client目录中,不再使用之前的instant client。 首先需要下载OLEDB驱动,同样,我下载64位版本:https://www.oracle.com/database/technologies/odac-downloads.html
这个压缩包是包含了安装说明的文档的,里面有readme.htm。文档里也有讲,可以全部安装,也可以选择需要的组件进行安装。我这里就只安装我需要的就行了。在当前目录打开命令窗口,输入: install.bat oledb c:\oracleOLEDB ODAC
安装完成之后,就会出现OraOLEDB.Oracle这个访问接口了 安全性设置不用说了,一样。 这种驱动创建的链接服务器可以使用下面这种方式进行查询,也可以使用前面的openquery方式查询。 select * from ORACLEOLEDB..SYSTEM.TESTSYSTEM是我TEST表创建时选择的方案,注意方案前面试两个点。注意Oracle区分大小写,否则会无法查询。 以下引用内容出自:https://blog.csdn.net/jack_33/article/details/7620100 通过OleDB连接Oracle数据库,一般有两种provider A:provider=MSDAORA.1 B:provider=OraOLEDB.Oracle 第一种为微软公司的oracle组件,第二种为oracle的访问组件。 Oracle数据库经常使用的两种字符集 C:英文:SIMPLIFIED CHINESE_CHINA.US7ASCII D:中文:SIMPLIFIED CHINESE_CHINA.ZHS16GBK A与C、D搭配,数据读写没有乱码问题,如果出现乱码,则修改系统级(非用户级)的环境变量nls_lang为数据库所使用的字符集,重启电脑即可。 缺点:不支持long/Clob/Blob大字段。 B支持大字段,与D搭配最为完美。如果BC搭配使用,读出无乱码,写入为乱码,做为where条件传进去的中文参数为乱码。无法使用。如果数据库字符集为C,则只能使用A。如果要读取大字段,只得使用B新建连接 MSDAORA仅支持32位,64位机器上可能已经没有带该驱动了。 下载链接:https://www.microsoft.com/zh-CN/download/details.aspx?id=5793 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |